package com.t.bricks.bussiness.service.filecabinet;

import org.springframework.web.multipart.MultipartFile;

import com.t.bricks.model.MsgEmity;

public interface FileCabinetService {
	
	/**
	 * 添加
	 * @param operator 操作人
	 * @param project 项目名
	 * @param fileName 文件名
	 * @param sPath 文件保存路径
	 * @param sType 文件类型
	 * @param sMD5 文件MD5值
	 * @return
	 */
	MsgEmity add(String operator, String project, String fileName,
			String sPath, String sType, String sMD5
	);
	
	/**
	 * 修改
	 * @param sId
	 * @param sModifieder
	 * @return
	 */
	MsgEmity edit(String sId, String sModifieder);
	
	/**
	 * 根据项目名,文件名和文件key查询数据
	 * @param sProgram 
	 * @param fileName
	 * @param sFileMd5
	 * @return
	 */
	MsgEmity findByNameAndKey(String sProgram, String fileName, String sFileMd5);
	
	/**
	 * 判断是新增还是修改
	 * @param sId
	 * @param operator
	 * @param project
	 * @param fileName
	 * @param sPath
	 * @param sType
	 * @param sMD5
	 * @return
	 */
	MsgEmity operateData(String operator, String project, String fileName,
			String sPath, String sType, String sMD5);
	
	/**
	 * 根据编号查询数据
	 * @Param sId
	 * @return
	 */
	MsgEmity findById(String sId);
	
	/**
	 * 文件上传
	 * @param file 文件
	 * @param person 操作人
	 * @param project 项目名
	 * @param requestDate 请求时间
	 * @param checkKey 验证key
	 * @return
	 */
	MsgEmity upFile(MultipartFile file, String person, String project,
			String requestDate, String checkKey);
	
	/**
	 * 文件上传
	 * @param file 文件
	 * @param person 操作人
	 * @param project 项目名
	 * @return
	 */
	MsgEmity upFile(MultipartFile file, String person, String project);

	/**
	 * 文件上传(自定义保存路径)
	 * @param file 文件
	 * @param person 操作人
	 * @param project 项目名
	 * @param customPath 自定义路径
	 * @param requestDate 请求时间
	 * @param checkKey 验证key
	 * @return
	 */
	MsgEmity upFileCustom(MultipartFile file, String person, String project,
			String customPath, String requestDate, String checkKey);
	
	/**
	 * 验证请求密钥
	 * @param checkKey 请求密钥
	 * @param sDatas 请求值(数组)
	 * @return
	 */
	MsgEmity validateCheckKey(String checkKey, String...sDatas);
	
	/**
	 * 判断文件是否存在
	 * @param sRecordId
	 * @return
	 */
	MsgEmity checkFileExist(String sRecordId);
	
}
